// ============================== 导入依赖 ============================== //

import { date, month } from './FormDateRange'

const HISTORY = [
  { text: '今天', onClick: (p) => p.$emit('pick', date(0)) },
  { text: '昨天', onClick: (p) => p.$emit('pick', date(-1)) },
  { text: '前天', onClick: (p) => p.$emit('pick', date(-2)) },
  { text: '三天前', onClick: (p) => p.$emit('pick', date(-3)) },
  { text: '四天前', onClick: (p) => p.$emit('pick', date(-4)) },
  { text: '五天前', onClick: (p) => p.$emit('pick', date(-5)) },
  { text: '六天前', onClick: (p) => p.$emit('pick', date(-6)) },
  { text: '一周前', onClick: (p) => p.$emit('pick', date(-7)) },
  { text: '一月前', onClick: (p) => p.$emit('pick', month(-1)) },
]
const FUTURE = [
  { text: '今天', onClick: (p) => p.$emit('pick', date(0)) },
  { text: '明天', onClick: (p) => p.$emit('pick', date(1)) },
  { text: '后天', onClick: (p) => p.$emit('pick', date(2)) },
  { text: '三天后', onClick: (p) => p.$emit('pick', date(3)) },
  { text: '四天后', onClick: (p) => p.$emit('pick', date(4)) },
  { text: '五天后', onClick: (p) => p.$emit('pick', date(5)) },
  { text: '六天后', onClick: (p) => p.$emit('pick', date(6)) },
  { text: '一周后', onClick: (p) => p.$emit('pick', date(7)) },
  { text: '一月后', onClick: (p) => p.$emit('pick', month(1)) },
]
const ALL = [
  { text: '今天', onClick: (p) => p.$emit('pick', date(0)) },
  { text: '昨天', onClick: (p) => p.$emit('pick', date(-1)) },
  { text: '明天', onClick: (p) => p.$emit('pick', date(1)) },
  { text: '前天', onClick: (p) => p.$emit('pick', date(-2)) },
  { text: '后天', onClick: (p) => p.$emit('pick', date(2)) },
  { text: '一周前', onClick: (p) => p.$emit('pick', date(-7)) },
  { text: '一周后', onClick: (p) => p.$emit('pick', date(7)) },
  { text: '一月前', onClick: (p) => p.$emit('pick', month(-1)) },
  { text: '一月后', onClick: (p) => p.$emit('pick', month(1)) },
]

// ============================== 导出表单日期 ============================== //

export default {
  // —————————————————————————————— 公共覆盖 —————————————————————————————— //

  // 若为无逗号的 'date'，则为当天的 00:00:00
  // 若为逗号分隔的 'date1, date2'，则分别为当天的 00:00:00 和 23:59:59
  bind: { type: String, default: 'date' }, // 绑定键名，触发 @change 事件

  // —————————————————————————————— 私有属性 —————————————————————————————— //

  // max: { type: [Number, String], default: null }, // 最大日期 (类型跟 one.date 一致)
  // min: { type: [Number, String], default: null }, // 最小日期 (同上)

  weekFirst: { type: Number, default: 1 }, // 每周第一天 (0 周日，1 周一，6 周六)

  lastSecond: { type: Boolean, default: false }, // 是否为最后一秒

  format: { type: Boolean, default: false }, // 是否为 yyyy-MM-dd 串
  string: { type: Boolean, default: false }, // 是否为字符串类型的时间戳

  history: { type: Boolean, default: false }, // 是否为历史
  future: { type: Boolean, default: false }, // 是否为将来

  center: { type: Boolean, default: false }, // 是否居中显示

  noQuick: { type: Boolean, default: false }, // 有无快捷选项
  quickHistory: { type: Array, default: () => HISTORY }, // 历史快捷选项
  quickFuture: { type: Array, default: () => FUTURE }, // 未来快捷选项
  quickAll: { type: Array, default: () => ALL }, // 全部快捷选项
}
